package com.atguigu.gulimall.common.valid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;

// 自定义参数校验器
public class ListValConstraintValidator implements ConstraintValidator<ListVal, Integer> {

    private Set<Integer> set = new HashSet<Integer>();

    // 执行 isValid() 方法之前执行，可以通过这个方法得到注解中的数据
    @Override
    public void initialize(ListVal constraintAnnotation) {
        int[] val = constraintAnnotation.val();  // 得到 val[] 中的值
        System.out.println("val长度"+val.length);
        if (val.length != 0) {
            for (int result : val) {
                set.add(result);
            }
        }
    }

    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext context) {
        System.out.println("value"+value);
        System.out.println("y/n"+set.contains(value));
        return set.contains(value);
    }
}
